"""
一个进程由一个或者多个线程组成,然后由一个主线程开辟多个线程
线程比进程切换要快,早期使用的是多进程


多线程:就是在一个进程里开启多个线程来轮询执行程序,涉及到操作系统线程的调度
协程:通过调用库完成,只在一个主线程中完成,只是通过协程库内部对程序中的代码块进行任务切换,节省了内核开销
"""
import time
import threading
def foo(t):
    print("foo 开始")
    time.sleep(t)
    print("foo 结束")


def bar(t):
    print("bar 开始")
    time.sleep(t)
    print("bar 结束")



starTime = time.time()
# 创建线程1
t1 = threading.Thread(target=foo,args=(2,))
t1.start() # 创建线程，进入就绪状态

# 创建线程2
t2 = threading.Thread(target=bar,args=(2,))
t2.start() # 创建线程，进入就绪状态


# 线程等待如果两个线程都没有执行完毕，那么主线程就会卡在这里
t1.join()
t2.join()
print(time.time()-starTime)

